-
Notifications
You must be signed in to change notification settings - Fork 190
1) Delphi methods calling fully rewritten to Invoke calling. Works on… #203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… Win 86&64, Mac x32, should work on NEXTGEN as well. 2) correction for NEXTGEN compiler support in progress - no any compilation error, but still huge problems due to ARC. 3) added parameter FinalCleaning (default - True) to TPSPascalCompiler.Compile - for cleaning of unused stuff - memory leakage removed. For debug run - set to False. 4) added return value to TPSExecuteEvent (for compilation break in case of unsuccessful import) 5) raising of Exception changed to InternalScriptException - for filtering exceptions by class, f.e. in EurekaLog, madExcept and other exception handlers. 6) removed StrToDate from uPSC_dateutils - duplication from uPSI_SysUtils 7) in uPSDebugger added 3 methods (more info from debugger) 8) Added IncMinute and similar methods import to uPSR_dateutils - before were only in uPSC_dateutils 9) in uPSRuntime added more informative messages in case of Array out ob bounds, and few more. 10) small fixes and changes here and there. on next commit will be added example of PS in thread work, and fully-functional debugger.
This pull request should be broken up in multiple smaller pull requests, there's a lot of unrelated stuff together now. Also it contains several TODOs like "TODO add and test: btInterface". |
okey, will divide this pull for few multiply. Delete it from pull request pls. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a test of the debugger callstack functionality. It worked well 👍 I have 3 comments.
@@ -52,7 +52,13 @@ TPSCustomDebugExec = class(TPSExec) | |||
property CurrentProcParams: TIfStringList read GetCurrentProcParams; | |||
|
|||
function GetGlobalVar(I: Cardinal): PIfVariant; | |||
|
|||
|
|||
function GetProcNo(Proc : TPSInternalProcRec) : Cardinal; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TPSExec already has a GetProcNo with a different prototype so this changes breaks compilation of all code which uses TPSDebugExec and was already calling that GetProcNo. I think this new one should have a different name.
end; | ||
|
||
begin | ||
Result := 'Call Stack:' + #13#10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it should be up to the caller to add this header if desired.
if (ParamList.Items[l] = 'Result') or (ParamList.Items[l] = '') then | ||
Continue | ||
else | ||
Result:=Result+ ParamList.Items[l]+':"' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The use of " seems odd to me. Would probably be better to remove this? Or at least make it a single quote but that still seems odd and also is inconsisten with variably evaluation while debugging.
Ah, ok, sorry.
Cool. In case you're not aware: you need to use branches for this in your repo. |
… Stack" view now shows the call stack. Requires the callstack functionality from remobjects/pascalscript#203, with some fixes.
@Vizit0r I integrated the debugger call stack functionality into Inno Setup. Thanks. If you want I can commit this part so you don't have to create a pull request for it. This would include changes for the above comments and some other tweaks. I also noticed that the GetCallStackCount doesn't actually return a correct number if a function with parameters is on the call stack. Can fix that too. |
of course, do that, especially if you find something incorrect. Please also include in your commit line |
…s and cleanup. Does not yet display parameter values, nor does it return position information.
Failed compilation on previous delphi versions and do not work. uPSRuntime.pas
|
…pc etc) for Delphi 2010+. (#207) Tested on Win x86&x64, Android, MacOS32 - no problems observed. 2) Changes for correct MACOS compilation in Delphi 3) few changes and fixes for correct work on D7.
… Win 86&64, Mac x32, should work on NEXTGEN as well.
on next commit will be added example of PS in thread work, and fully-functional debugger.